<?php
	
	BDD::setHote("10.3.244.157:3306");
	BDD::setUtilisateur("root");
	BDD::setMotDePasse("");
	BDD::setNomBase("agile");
	
	//Classe BDD, permet de gérer la base de données
	class BDD
	{
		private static $hote;				//Nom d'hôte de la BDD
		private static $utilisateur;		//Nom d'utilisateur à utiliser pour se connecter à la BDD
		private static $motDePasse;			//Mot de passe de l'utilisateur
		private static $nomBase;			//Nom de la base à utiliser
		private static $idConnexion;		//Identifiant de la connexion courante
		private static $isConnecte = false;	//Booléen permettant de savoir si une connexion est établie
		
		//Connexion à la BDD
		public static function connexion()
		{
			$result = mysql_connect(self::$hote, self::$utilisateur, self::$motDePasse);
			if (!mysql_select_db(self::$nomBase))
			{
				return false;
			}
			else
			{
				self::$idConnexion = $result;
				return $result;
			}
		}
		
		//Déconnexion de la BDD
		public static function deconnexion()
		{
			$result = mysql_close(self::$idConnexion);
			self::$idConnexion = "";
			return $result;
		}
		
		//Effectue une réquete en BDD, établit une connexion si nécessaire
		public static function requete($_requete)
		{
			if (self::$isConnecte == false)
			{
				self::connexion();
				self::$isConnecte = true;
			}
			$result = mysql_query($_requete);
			return $result;
		}
		
		//Retourne un dump de la base de données
		public static function dump()
		{
			$base = self::$nomBase;
			$tables = mysql_query("SHOW TABLES FROM " . $base);
			while ($donnees = mysql_fetch_array($tables))
			{
				$table = $donnees[0];
				$res = mysql_query('SHOW CREATE TABLE '.$table);
				if ($res)
				{
					$insertions = '';
					$tableau = mysql_fetch_array($res);
					$tableau[1] .= ';';
					$dumpsql[] = str_replace("\n", '', $tableau[1]);
					$req_table = mysql_query('SELECT * FROM '.$table);
					$nbr_champs = mysql_num_fields($req_table);
					while ($ligne = mysql_fetch_array($req_table))
						{
						$insertions .= 'INSERT INTO '.$table.' VALUES (';
						for ($i=0; $i<$nbr_champs; $i++)
						{
							$insertions .= '\'' . mysql_real_escape_string($ligne[$i]) . '\', ';
						}

						$insertions = substr($insertions, 0, -2);
						$insertions .= ");\n";
					}

					if ($insertions != '') $dumpsql[] = $insertions;
				}
			}
			return implode("\n", $dumpsql);
		}
		
		public static function setHote($_hote)
		{
			self::$hote = $_hote;
		}
		
		public static function setUtilisateur($_utilisateur)
		{
			self::$utilisateur = $_utilisateur;
		}
		
		public static function setMotDePasse($_motDePasse)
		{
			self::$motDePasse = $_motDePasse;
		}
		
		public static function setNomBase($_nomBase)
		{
			self::$nomBase = $_nomBase;
		}
		
	}

?>